Longest Consecutive Sequence

Given an unsorted array of integers nums, return the length of the longest consecutive elements sequence.You must write an algorithm that runs in O(n) time. Example 1: Input: nums = [100,4,200,1,3,2] Output: 4 Explanation: The longest consecutive elements sequence is [1, 2, 3, 4]. Therefore its length is 4. Example 2: Input: nums = [0,3,7,2,5,8,4,6,0,1] Output: 9



Code
 
int longestConsecutive(vector<int>& a) 
{
int i,j;
int n=a.size();
if(n==0)
 return 0;
unordered_map<int,int>m;
for(i=0;i<n;i++)
m[a[i]]++;
int mx=INT_MIN,count=0;
for(i=0;i<n;i++)
{   count=0;
    if(m.find(a[i]-1)==m.end())
    {  int num=a[i];
       count=0;
       while(m.find(num)!=m.end())
       {   num++;
           count++;
       }
    }
    mx=max(mx,count);
}
return mx;
}